package com.lin.fengxiu.core.money;

import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * @ClassName HalfEvenRound
 * @Description TODO 银行家模式 -- 四舍六入
 * @Author wushaopei
 * @Date 2021/4/3 15:41
 * @Version 1.0
 */
@Component
@Primary
public class HalfEvenRound implements IMoneyDiscount {

    /**
     * @Description TODO 金额计算，银行家模式 -- 四舍六入
     * @param original
     * @param discount
     * @return
     */
    @Override
    public BigDecimal discount(BigDecimal original, BigDecimal discount) {
        BigDecimal actualMoney = original.multiply(discount);
        // 这里使用 RoundingMode.HALF_EVEN 银行家模式，即四舍六入模式
        BigDecimal finalMoney = actualMoney.setScale(2, RoundingMode.HALF_EVEN);
        return finalMoney;
    }
}
